/*
 * @Author: hanyuanjiao
 * @Date: 2025-07-21 06:52:28
 * @LastEditors: Please set LastEditors
 * @LastEditTime: 2025-07-26 07:20:58
 * @Description: 工具类函数
 */
#ifndef TOOLS_H
#define TOOLS_H
#include <stdlib.h>
#include <stdint.h>
#include <stdio.h>
//读取hex文件时的行缓存
#define HEX_LINE_SIZE 1024
// hex文件,行 数据类型
#define HEX_TYPE_DATA 0x00
// hex文件 行 文件结束
#define HEX_TYPE_EOF 0x01
/**
 * @description: 将数字转换成字符串
 * @param {char} *str 输出的字符串
 * @param {int} num0 数字
 * @param {int} base 进制
 * @return {*}
 */
void itoa(char *str, int num0, int base);
/**
 * @description: 将字节转换成二进制字符串并返回
 * @param {uint8_t} value
 * @return {*}
 */
char *u8toBinary(uint8_t value);

/**
 * @description: 读取hex文件,并返回字节数组
 * @param {char*} filename hex文件路径
 * @return {*}
 */
uint8_t *simu8051_load_hexfile(const char *filename);
/**
 * @description: 打印芯片寄存器信息
 * @return {*}
 */
void simu8051_dump_regs(void);

#endif    // !LIB_H
